package tool

import (
	"github.com/dlclark/regexp2"
)

const (
	// UsernameReg 用户名，只能是数字，字母，最短5个字符，最长不超过20字符
	UsernameReg = "^[a-zA-Z0-9]{5,20}$"
	// PasswordReg 密码，只能是数字，字母，符合，且必须包含字母，数字，符号等至少一个，最短8个字符，最长不超过20字符
	PasswordReg = "^(?=.*[a-zA-Z])(?=.*\\d)(?=.*[!@#$%^&*()_+\\-=[\\]{};':\"\\\\|,.<>/?]).{8,20}$"
	// ClientNameReg 客户端名称，可以字母，数字，中文，最短6个字符，最长不超过20个字符
	ClientNameReg = "^[\\p{L}\\p{N}\\p{Han}]{6,20}$"
	// ClientRedirectUrlReg 客户端重定向url
	ClientRedirectUrlReg = "^(https?|ftp)://[^\\s/$.?#].[^\\s]*$"
)

// VerificationParam 正则校验，好你个golang的regexp，不支持复杂的正则，需要用一个库
func VerificationParam(reg, str string) (result bool) {
	regObj, err := regexp2.Compile(reg, 0)
	result, err = regObj.MatchString(str)
	if err != nil {
		return false
	}
	return
}
